Pular para o conteúdo principal

Usuários

Um usuário é um membro da sua conta no Woofed CRM — tipicamente um vendedor, um SDR ou um gerente de contas. Usuários são donos de deals, executam atividades e recebem atribuições.

Estrutura do recurso

AtributoTipoObrigatórioExemploNotas
emailstringSim (na criação)john.doe@example.comDeve ser um email válido.
passwordstringSim (na criação)StrongP@ssw0rdSenha do usuário.
password_confirmationstringSim (na criação)StrongP@ssw0rdDeve coincidir com password.
full_namestringNãoJohn DoeDefault vazio.
phonestringNão+5511999999999
languagestringNãoenen, pt-BR, es, de. Default en.
avatar_urlstringNãohttps://example.com/avatar.pngURL pública do avatar.
job_descriptionstringNãosales_managerDefault other.
webpush_notify_on_event_expiredbooleanNãotrueHabilita Web Push quando um evento expira.

Todos os endpoints abaixo assumem:

{base_url} = https://app.woofedcrm.com
{account_id} = 1

Buscar usuários

POST /api/v1/accounts/{account_id}/users/search

Busca usuários com um objeto query no estilo Ransack. Veja Estrutura da API → Busca para a lista de predicados.

Body

{
"query": {
"full_name_cont": "John Acme",
"email_cont": "john.doe@example.com",
"phone_cont": "+1555",
"language_eq": "en",
"job_description_cont": "ceo",
"created_at_gteq": "2025-01-01T00:00:00Z",
"created_at_lteq": "2025-01-31T23:59:59Z",
"updated_at_gteq": "2025-01-10T00:00:00Z",
"id_eq": 123
}
}

Exemplo de requisição

curl -X POST "https://app.woofedcrm.com/api/v1/accounts/1/users/search" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer SEU_TOKEN_AQUI" \
-d '{
"query": {
"full_name_cont": "John",
"language_eq": "en"
}
}'

Exemplo de resposta — 200 OK

{
"data": [
{
"id": 123,
"full_name": "John Acme",
"email": "john.doe@example.com",
"created_at": "2025-01-12T18:21:03Z",
"updated_at": "2025-01-12T18:21:03Z",
"phone": "+15551234567",
"language": "en",
"notifications": { "webpush_notify_on_event_expired": true },
"avatar_url": "https://example.com/avatar.png",
"job_description": "ceo",
"theme_preference": "system",
"account_id": 1
}
],
"pagination": {
"page": 1,
"items": 1,
"count": 1,
"pages": 1,
"from": 1,
"last": 1,
"to": 1,
"prev": null,
"next": null
}
}

Possíveis erros

StatusQuando
400JSON mal formatado.
401Token ausente ou inválido.
422Predicado desconhecido ou campo não pesquisável.

Criar usuário

POST /api/v1/accounts/{account_id}/users

Cria um novo usuário dentro da conta.

Body

{
"email": "tim@maia.com",
"password": "123456",
"password_confirmation": "123456",
"full_name": "Tim Maia",
"phone": "+5541996910256",
"language": "en",
"avatar_url": "https://example.com/avatars/tim-maia.png",
"job_description": "other",
"webpush_notify_on_event_expired": true
}

Exemplo de requisição

curl -X POST "https://app.woofedcrm.com/api/v1/accounts/1/users" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer SEU_TOKEN_AQUI" \
-d '{
"email": "tim@maia.com",
"password": "StrongP@ssw0rd",
"password_confirmation": "StrongP@ssw0rd",
"full_name": "Tim Maia",
"language": "pt-BR"
}'

Exemplo de resposta — 201 Created

{
"id": 9,
"full_name": "Tim Maia",
"email": "tim@maia.com",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:30:00Z",
"phone": "+5541996910256",
"language": "pt-BR",
"notifications": { "webpush_notify_on_event_expired": true },
"avatar_url": "https://example.com/avatars/tim-maia.png",
"job_description": "other",
"theme_preference": "system",
"account_id": 1
}
Endpoint sensível

Criar usuários concede acesso à conta. Garanta que o token usado para chamar este endpoint pertence a um usuário admin, e nunca exponha esta chamada em um formulário público.

Possíveis erros

StatusQuando
401Token ausente ou inválido.
422Email já em uso, senha não confere, ou outro erro de validação.